home *** CD-ROM | disk | FTP | other *** search
-
-
-
- READ C Library Procedures READ
-
-
-
- NNAAMMEE
- read, readv - read input
-
- SSYYNNOOPPSSIISS
- cccc == rreeaadd((dd,, bbuuff,, nnbbyytteess))
- iinntt cccc,, dd;;
- cchhaarr **bbuuff;;
- iinntt nnbbyytteess;;
-
- ##iinncclluuddee <<ssyyss//ttyyppeess..hh>>
- ##iinncclluuddee <<ssyyss//uuiioo..hh>>
-
- cccc == rreeaaddvv((dd,, iioovv,, iioovvccnntt))
- iinntt cccc,, dd;;
- ssttrruucctt iioovveecc **iioovv;;
- iinntt iioovvccnntt;;
-
- DDEESSCCRRIIPPTTIIOONN
- _R_e_a_d attempts to read _n_b_y_t_e_s of data from the object refer-
- enced by the descriptor _d into the buffer pointed to by _b_u_f.
- _R_e_a_d_v performs the same action, but scatters the input data
- into the _i_o_v_c_n_t buffers specified by the members of the _i_o_v
- array: iov[0], iov[1], ..., iov[iovcnt-1].
-
- For _r_e_a_d_v, the _i_o_v_e_c structure is defined as
-
- struct iovec {
- caddr_t iov_base;
- int iov_len;
- };
-
- Each _i_o_v_e_c entry specifies the base address and length of an
- area in memory where data should be placed. _R_e_a_d_v will
- always fill an area completely before proceeding to the
- next.
-
- On objects capable of seeking, the _r_e_a_d starts at a position
- given by the pointer associated with _d (see _l_s_e_e_k(2)). Upon
- return from _r_e_a_d, the pointer is incremented by the number
- of bytes actually read.
-
- Objects that are not capable of seeking always read from the
- current position. The value of the pointer associated with
- such an object is undefined.
-
- Upon successful completion, _r_e_a_d and _r_e_a_d_v return the number
- of bytes actually read and placed in the buffer. The system
- guarantees to read the number of bytes requested if the
- descriptor references a normal file that has that many bytes
- left before the end-of-file, but in no other case.
-
- If the returned value is 0, then end-of-file has been
-
-
-
- Sprite v1.0 May 23, 1986 1
-
-
-
-
-
-
- READ C Library Procedures READ
-
-
-
- reached.
-
- RREETTUURRNN VVAALLUUEE
- If successful, the number of bytes actually read is
- returned. Otherwise, a -1 is returned and the global vari-
- able _e_r_r_n_o is set to indicate the error.
-
- EERRRROORRSS
- _R_e_a_d and _r_e_a_d_v will fail if one or more of the following are
- true:
-
- [EBADF] _D is not a valid file or socket descriptor
- open for reading.
-
- [EFAULT] _B_u_f points outside the allocated address
- space.
-
- [EIO] An I/O error occurred while reading from the
- file system.
-
- [EINTR] A read from a slow device was interrupted
- before any data arrived by the delivery of a
- signal.
-
- [EINVAL] The pointer associated with _d was negative.
-
- [EWOULDBLOCK] The file was marked for non-blocking I/O, and
- no data were ready to be read.
-
- In addition, _r_e_a_d_v may return one of the following errors:
-
- [EINVAL] _I_o_v_c_n_t was less than or equal to 0, or
- greater than 16.
-
- [EINVAL] One of the _i_o_v__l_e_n values in the _i_o_v array
- was negative.
-
- [EINVAL] The sum of the _i_o_v__l_e_n values in the _i_o_v
- array overflowed a 32-bit integer.
-
- [EFAULT] Part of the _i_o_v points outside the process's
- allocated address space.
-
- SSEEEE AALLSSOO
- dup(2), fcntl(2), open(2), pipe(2), select(2), socket(2),
- socketpair(2)
-
-
-
-
-
-
-
-
-
- Sprite v1.0 May 23, 1986 2
-
-
-
-